home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / Devices.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  25.1 KB  |  852 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Devices.a
  3. ;
  4. ;    Contains:    Device Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__DEVICES__') = 'UNDEFINED' THEN
  19. __DEVICES__ SET 1
  20.  
  21.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  22.     include 'OSUtils.a'
  23.     ENDIF
  24.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  25.     include 'Files.a'
  26.     ENDIF
  27.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  28.     include 'Quickdraw.a'
  29.     ENDIF
  30.     IF &TYPE('__NAMEREGISTRY__') = 'UNDEFINED' THEN
  31.     include 'NameRegistry.a'
  32.     ENDIF
  33.     IF &TYPE('__CODEFRAGMENTS__') = 'UNDEFINED' THEN
  34.     include 'CodeFragments.a'
  35.     ENDIF
  36.     IF &TYPE('__DRIVERFAMILYMATCHING__') = 'UNDEFINED' THEN
  37.     include 'DriverFamilyMatching.a'
  38.     ENDIF
  39.  
  40. ;  Values of the 'message' parameter to a Chooser device package 
  41.  
  42. chooserInitMsg                    EQU        11                    ; the user selected this device package 
  43. newSelMsg                        EQU        12                    ; the user made new device selections 
  44. fillListMsg                        EQU        13                    ; fill the device list with choices 
  45. getSelMsg                        EQU        14                    ; mark one or more choices as selected 
  46. selectMsg                        EQU        15                    ; the user made a selection 
  47. deselectMsg                        EQU        16                    ; the user canceled a selection 
  48. terminateMsg                    EQU        17                    ; allows device package to clean up 
  49. buttonMsg                        EQU        19                    ; the user selected a button 
  50.  
  51. ;  Values of the 'caller' parameter to a Chooser device package 
  52.  
  53. chooserID                        EQU        1
  54.  
  55. ;  Values of the 'message' parameter to a Monitor 'mntr' 
  56.  
  57. initMsg                            EQU        1                    ;initialization
  58. okMsg                            EQU        2                    ;user clicked OK button
  59. cancelMsg                        EQU        3                    ;user clicked Cancel button
  60. hitMsg                            EQU        4                    ;user clicked control in Options dialog
  61. nulMsg                            EQU        5                    ;periodic event
  62. updateMsg                        EQU        6                    ;update event
  63. activateMsg                        EQU        7                    ;not used
  64. deactivateMsg                    EQU        8                    ;not used
  65. keyEvtMsg                        EQU        9                    ;keyboard event
  66. superMsg                        EQU        10                    ;show superuser controls
  67. normalMsg                        EQU        11                    ;show only normal controls
  68. startupMsg                        EQU        12                    ;code has been loaded
  69.  
  70. ;  control codes for DeskAccessories 
  71.  
  72. goodbye                            EQU        -1                    ; heap being reinitialized 
  73. killCode                        EQU        1                    ; KillIO requested 
  74. accEvent                        EQU        64                    ; handle an event 
  75. accRun                            EQU        65                    ; time for periodic action 
  76. accCursor                        EQU        66                    ; change cursor shape 
  77. accMenu                            EQU        67                    ; handle menu item 
  78. accUndo                            EQU        68                    ; handle undo command 
  79. accCut                            EQU        70                    ; handle cut command 
  80. accCopy                            EQU        71                    ; handle copy command 
  81. accPaste                        EQU        72                    ; handle paste command 
  82. accClear                        EQU        73                    ; handle clear command 
  83. ;  Control/Status Call Codes 
  84.  
  85. drvStsCode                        EQU        8                    ; status call code for drive status 
  86. ejectCode                        EQU        7                    ; control call eject code 
  87. tgBuffCode                        EQU        8                    ; set tag buffer code 
  88. ;  miscellaneous Device Manager constants 
  89.  
  90. ioInProgress                    EQU        1                    ; predefined value of ioResult while I/O is pending 
  91. aRdCmd                            EQU        2                    ; low byte of ioTrap for Read calls 
  92. aWrCmd                            EQU        3                    ; low byte of ioTrap for Write calls 
  93. asyncTrpBit                        EQU        10                    ; trap word modifier 
  94. noQueueBit                        EQU        9                    ; trap word modifier 
  95. ;  flags used in the driver header and device control entry 
  96.  
  97. dReadEnable                        EQU        0                    ; set if driver responds to read requests 
  98. dWritEnable                        EQU        1                    ; set if driver responds to write requests 
  99. dCtlEnable                        EQU        2                    ; set if driver responds to control requests 
  100. dStatEnable                        EQU        3                    ; set if driver responds to status requests 
  101. dNeedGoodBye                    EQU        4                    ; set if driver needs time for performing periodic tasks 
  102. dNeedTime                        EQU        5                    ; set if driver needs time for performing periodic tasks 
  103. dNeedLock                        EQU        6                    ; set if driver must be locked in memory as soon as it is opened 
  104.  
  105. dNeedLockMask                    EQU        $4000                ; set if driver must be locked in memory as soon as it is opened 
  106. dNeedTimeMask                    EQU        $2000                ; set if driver needs time for performing periodic tasks 
  107. dNeedGoodByeMask                EQU        $1000                ; set if driver needs to be called before the application heap is initialized 
  108. dStatEnableMask                    EQU        $0800                ; set if driver responds to status requests 
  109. dCtlEnableMask                    EQU        $0400                ; set if driver responds to control requests 
  110. dWritEnableMask                    EQU        $0200                ; set if driver responds to write requests 
  111. dReadEnableMask                    EQU        $0100                ; set if driver responds to read requests 
  112.  
  113. ;  run-time flags used in the device control entry 
  114.  
  115. dOpened                            EQU        5                    ; driver is open 
  116. dRAMBased                        EQU        6                    ; dCtlDriver is a handle (1) or pointer (0) 
  117. drvrActive                        EQU        7                    ; driver is currently processing a request 
  118.  
  119. drvrActiveMask                    EQU        $0080                ; driver is currently processing a request 
  120. dRAMBasedMask                    EQU        $0040                ; dCtlDriver is a handle (1) or pointer (0) 
  121. dOpenedMask                        EQU        $0020                ; driver is open 
  122.  
  123. DRVRHeader                RECORD 0
  124. drvrFlags                 ds.w    1                ; offset: $0 (0)
  125. drvrDelay                 ds.w    1                ; offset: $2 (2)
  126. drvrEMask                 ds.w    1                ; offset: $4 (4)
  127. drvrMenu                 ds.w    1                ; offset: $6 (6)
  128. drvrOpen                 ds.w    1                ; offset: $8 (8)
  129. drvrPrime                 ds.w    1                ; offset: $A (10)
  130. drvrCtl                     ds.w    1                ; offset: $C (12)
  131. drvrStatus                 ds.w    1                ; offset: $E (14)
  132. drvrClose                 ds.w    1                ; offset: $10 (16)
  133. drvrName                 ds.b    1                ; offset: $12 (18) <-- really an array of length one
  134.                          ORG 20
  135. sizeof                     EQU *                    ; size:   $14 (20)
  136.                         ENDR
  137. ; typedef struct DRVRHeader *            DRVRHeaderPtr
  138.  
  139. ; typedef DRVRHeaderPtr *                DRVRHeaderHandle
  140.  
  141. DCtlEntry                RECORD 0
  142. dCtlDriver                 ds.l    1                ; offset: $0 (0)
  143. dCtlFlags                 ds.w    1                ; offset: $4 (4)
  144. dCtlQHdr                 ds        QHdr            ; offset: $6 (6)
  145. dCtlPosition             ds.l    1                ; offset: $10 (16)
  146. dCtlStorage                 ds.l    1                ; offset: $14 (20)
  147. dCtlRefNum                 ds.w    1                ; offset: $18 (24)
  148. dCtlCurTicks             ds.l    1                ; offset: $1A (26)
  149. dCtlWindow                 ds.l    1                ; offset: $1E (30)
  150. dCtlDelay                 ds.w    1                ; offset: $22 (34)
  151. dCtlEMask                 ds.w    1                ; offset: $24 (36)
  152. dCtlMenu                 ds.w    1                ; offset: $26 (38)
  153. sizeof                     EQU *                    ; size:   $28 (40)
  154.                         ENDR
  155. ; typedef struct DCtlEntry *            DCtlPtr
  156.  
  157. ; typedef DCtlPtr *                        DCtlHandle
  158.  
  159. AuxDCE                    RECORD 0
  160. dCtlDriver                 ds.l    1                ; offset: $0 (0)
  161. dCtlFlags                 ds.w    1                ; offset: $4 (4)
  162. dCtlQHdr                 ds        QHdr            ; offset: $6 (6)
  163. dCtlPosition             ds.l    1                ; offset: $10 (16)
  164. dCtlStorage                 ds.l    1                ; offset: $14 (20)
  165. dCtlRefNum                 ds.w    1                ; offset: $18 (24)
  166. dCtlCurTicks             ds.l    1                ; offset: $1A (26)
  167. dCtlWindow                 ds.l    1                ; offset: $1E (30)
  168. dCtlDelay                 ds.w    1                ; offset: $22 (34)
  169. dCtlEMask                 ds.w    1                ; offset: $24 (36)
  170. dCtlMenu                 ds.w    1                ; offset: $26 (38)
  171. dCtlSlot                 ds.b    1                ; offset: $28 (40)
  172. dCtlSlotId                 ds.b    1                ; offset: $29 (41)
  173. dCtlDevBase                 ds.l    1                ; offset: $2A (42)
  174. dCtlOwner                 ds.l    1                ; offset: $2E (46)
  175. dCtlExtDev                 ds.b    1                ; offset: $32 (50)
  176. fillByte                 ds.b    1                ; offset: $33 (51)
  177. dCtlNodeID                 ds.l    1                ; offset: $34 (52)
  178. sizeof                     EQU *                    ; size:   $38 (56)
  179.                         ENDR
  180. ; typedef struct AuxDCE *                AuxDCEPtr
  181.  
  182. ; typedef AuxDCEPtr *                    AuxDCEHandle
  183.  
  184. ;     The NDRV Driver IO Entry Point and Commands 
  185. ; typedef UInt16                         UnitNumber
  186.  
  187. ; typedef UInt32                         DriverOpenCount
  188.  
  189. ; typedef SInt16                         DriverRefNum
  190.  
  191. ; typedef SInt16                         DriverFlags
  192.  
  193. ; typedef UInt32                         IOCommandCode
  194.  
  195.  
  196. kOpenCommand                    EQU        0
  197. kCloseCommand                    EQU        1
  198. kReadCommand                    EQU        2
  199. kWriteCommand                    EQU        3
  200. kControlCommand                    EQU        4
  201. kStatusCommand                    EQU        5
  202. kKillIOCommand                    EQU        6
  203. kInitializeCommand                EQU        7                    ; init driver and device
  204. kFinalizeCommand                EQU        8                    ; shutdown driver and device
  205. kReplaceCommand                    EQU        9                    ; replace an old driver
  206. kSupersededCommand                EQU        10                    ; prepare to be replaced by a new driver
  207. kSuspendCommand                    EQU        11                    ; prepare driver to go to sleep
  208. kResumeCommand                    EQU        12                    ; wake up sleeping driver
  209.  
  210.  
  211.  
  212.  
  213. ; typedef UInt32                         IOCommandKind
  214.  
  215.  
  216. kSynchronousIOCommandKind        EQU        $00000001
  217. kAsynchronousIOCommandKind        EQU        $00000002
  218. kImmediateIOCommandKind            EQU        $00000004
  219. DriverInitInfo            RECORD 0
  220. refNum                     ds.w    1                ; offset: $0 (0)
  221. deviceEntry                 ds        RegEntryID        ; offset: $2 (2)
  222. sizeof                     EQU *                    ; size:   $12 (18)
  223.                         ENDR
  224. ; typedef struct DriverInitInfo *        DriverInitInfoPtr
  225.  
  226. DriverReplaceInfo        RECORD 0
  227. f                         ds        DriverInitInfo
  228. sizeof                     EQU *                    ; size:   $12 (18)
  229.                         ENDR
  230.  
  231.  
  232. ; typedef struct DriverInitInfo *        DriverReplaceInfoPtr
  233.  
  234. DriverFinalInfo            RECORD 0
  235. refNum                     ds.w    1                ; offset: $0 (0)
  236. deviceEntry                 ds        RegEntryID        ; offset: $2 (2)
  237. sizeof                     EQU *                    ; size:   $12 (18)
  238.                         ENDR
  239. ; typedef struct DriverFinalInfo *        DriverFinalInfoPtr
  240.  
  241. DriverSupersededInfo    RECORD 0
  242. f                         ds        DriverFinalInfo
  243. sizeof                     EQU *                    ; size:   $12 (18)
  244.                         ENDR
  245.  
  246.  
  247. ; typedef struct DriverFinalInfo *        DriverSupersededInfoPtr
  248.  
  249.  
  250. ;  Contents are command specific
  251.  
  252. IOCommandContents        RECORD 0
  253. pb                         ds.l    1                ; offset: $0 (0)
  254.                          ORG 0
  255. initialInfo                 ds.l    1                ; offset: $0 (0)
  256.                          ORG 0
  257. finalInfo                 ds.l    1                ; offset: $0 (0)
  258.                          ORG 0
  259. replaceInfo                 ds.l    1                ; offset: $0 (0)
  260.                          ORG 0
  261. supersededInfo             ds.l    1                ; offset: $0 (0)
  262. sizeof                     EQU *                    ; size:   $4 (4)
  263.                         ENDR
  264. ;  Record to describe a file-based driver candidate 
  265. FileBasedDriverRecord    RECORD 0
  266. theSpec                     ds        FSSpec            ; offset: $0 (0)        ;  file specification
  267. theType                     ds        DriverType        ; offset: $46 (70)        ;  nameInfoStr + version number
  268. compatibleProp             ds.b    1                ; offset: $6A (106)        ;  true if matched using a compatible name
  269. pad                         ds.b    3                ; offset: $6B (107)        ;  alignment
  270. sizeof                     EQU *                    ; size:   $6E (110)
  271.                         ENDR
  272. ; typedef struct FileBasedDriverRecord * FileBasedDriverRecordPtr
  273.  
  274. ;  Driver Loader API 
  275.  
  276. ;
  277. ; extern SInt16 HigherDriverVersion(NumVersion *driverVersion1, NumVersion *driverVersion2)
  278. ;
  279.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  280.         IMPORT_CFM_FUNCTION HigherDriverVersion
  281.     ENDIF
  282.  
  283. ;
  284. ; extern OSErr VerifyFragmentAsDriver(CFragConnectionID fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc)
  285. ;
  286.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  287.         IMPORT_CFM_FUNCTION VerifyFragmentAsDriver
  288.     ENDIF
  289.  
  290. ;
  291. ; extern OSErr GetDriverMemoryFragment(Ptr memAddr, long length, ConstStr63Param fragName, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc)
  292. ;
  293.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  294.         IMPORT_CFM_FUNCTION GetDriverMemoryFragment
  295.     ENDIF
  296.  
  297. ;
  298. ; extern OSErr GetDriverDiskFragment(FSSpecPtr fragmentSpec, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc)
  299. ;
  300.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  301.         IMPORT_CFM_FUNCTION GetDriverDiskFragment
  302.     ENDIF
  303.  
  304. ;
  305. ; extern OSErr InstallDriverFromFragment(CFragConnectionID fragmentConnID, RegEntryID *device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum)
  306. ;
  307.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  308.         IMPORT_CFM_FUNCTION InstallDriverFromFragment
  309.     ENDIF
  310.  
  311. ;
  312. ; extern OSErr InstallDriverFromFile(FSSpecPtr fragmentSpec, RegEntryID *device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum)
  313. ;
  314.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  315.         IMPORT_CFM_FUNCTION InstallDriverFromFile
  316.     ENDIF
  317.  
  318. ;
  319. ; extern OSErr InstallDriverFromMemory(Ptr memory, long length, ConstStr63Param fragName, RegEntryID *device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum)
  320. ;
  321.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  322.         IMPORT_CFM_FUNCTION InstallDriverFromMemory
  323.     ENDIF
  324.  
  325. ;
  326. ; extern OSErr InstallDriverFromDisk(Ptr theDriverName, RegEntryID *theDevice, UnitNumber theBeginningUnit, UnitNumber theEndingUnit, DriverRefNum *theRefNum)
  327. ;
  328.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  329.         IMPORT_CFM_FUNCTION InstallDriverFromDisk
  330.     ENDIF
  331.  
  332. ;
  333. ; extern OSErr FindDriversForDevice(RegEntryID *device, FSSpec *fragmentSpec, DriverDescription *fileDriverDesc, Ptr *memAddr, long *length, StringPtr fragName, DriverDescription *memDriverDesc)
  334. ;
  335.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  336.         IMPORT_CFM_FUNCTION FindDriversForDevice
  337.     ENDIF
  338.  
  339. ;
  340. ; extern OSErr FindDriverCandidates(RegEntryID *deviceID, Ptr *propBasedDriver, RegPropertyValueSize *propBasedDriverSize, StringPtr deviceName, DriverType *propBasedDriverType, Boolean *gotPropBasedDriver, FileBasedDriverRecordPtr fileBasedDrivers, ItemCount *nFileBasedDrivers)
  341. ;
  342.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  343.         IMPORT_CFM_FUNCTION FindDriverCandidates
  344.     ENDIF
  345.  
  346. ;
  347. ; extern OSErr ScanDriverCandidates(RegEntryID *deviceID, FileBasedDriverRecordPtr fileBasedDrivers, ItemCount nFileBasedDrivers, FileBasedDriverRecordPtr matchingDrivers, ItemCount *nMatchingDrivers)
  348. ;
  349.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  350.         IMPORT_CFM_FUNCTION ScanDriverCandidates
  351.     ENDIF
  352.  
  353. ;
  354. ; extern OSErr GetDriverForDevice(RegEntryID *device, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc)
  355. ;
  356.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  357.         IMPORT_CFM_FUNCTION GetDriverForDevice
  358.     ENDIF
  359.  
  360. ;
  361. ; extern OSErr InstallDriverForDevice(RegEntryID *device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum)
  362. ;
  363.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  364.         IMPORT_CFM_FUNCTION InstallDriverForDevice
  365.     ENDIF
  366.  
  367. ;
  368. ; extern OSErr GetDriverInformation(DriverRefNum refNum, UnitNumber *unitNum, DriverFlags *flags, DriverOpenCount *count, StringPtr name, RegEntryID *device, CFragSystem7Locator *driverLoadLocation, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescription *driverDesc)
  369. ;
  370.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  371.         IMPORT_CFM_FUNCTION GetDriverInformation
  372.     ENDIF
  373.  
  374. ;
  375. ; extern OSErr GetDriverDescription(LogicalAddress fragmentPtr, DriverDescriptionPtr *theDriverDesc)
  376. ;
  377.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  378.         IMPORT_CFM_FUNCTION GetDriverDescription
  379.     ENDIF
  380.  
  381. ;
  382. ; extern OSErr SetDriverClosureMemory(CFragConnectionID fragmentConnID, Boolean holdDriverMemory)
  383. ;
  384.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  385.         IMPORT_CFM_FUNCTION SetDriverClosureMemory
  386.     ENDIF
  387.  
  388. ;
  389. ; extern OSErr ReplaceDriverWithFragment(DriverRefNum theRefNum, CFragConnectionID fragmentConnID)
  390. ;
  391.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  392.         IMPORT_CFM_FUNCTION ReplaceDriverWithFragment
  393.     ENDIF
  394.  
  395. ;
  396. ; extern OSErr OpenInstalledDriver(DriverRefNum refNum, SInt8 ioPermission)
  397. ;
  398.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  399.         IMPORT_CFM_FUNCTION OpenInstalledDriver
  400.     ENDIF
  401.  
  402. ;
  403. ; extern OSErr RenameDriver(DriverRefNum refNum, StringPtr newDriverName)
  404. ;
  405.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  406.         IMPORT_CFM_FUNCTION RenameDriver
  407.     ENDIF
  408.  
  409. ;
  410. ; extern OSErr RemoveDriver(DriverRefNum refNum, Boolean immediate)
  411. ;
  412.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  413.         IMPORT_CFM_FUNCTION RemoveDriver
  414.     ENDIF
  415.  
  416. ;
  417. ; extern OSErr LookupDrivers(UnitNumber beginningUnit, UnitNumber endingUnit, Boolean emptyUnits, ItemCount *returnedRefNums, DriverRefNum *refNums)
  418. ;
  419.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  420.         IMPORT_CFM_FUNCTION LookupDrivers
  421.     ENDIF
  422.  
  423. ;
  424. ; extern UnitNumber HighestUnitNumber(void )
  425. ;
  426.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  427.         IMPORT_CFM_FUNCTION HighestUnitNumber
  428.     ENDIF
  429.  
  430. ;
  431. ; extern OSErr DriverGestaltOn(DriverRefNum refNum)
  432. ;
  433.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  434.         IMPORT_CFM_FUNCTION DriverGestaltOn
  435.     ENDIF
  436.  
  437. ;
  438. ; extern OSErr DriverGestaltOff(DriverRefNum refNum)
  439. ;
  440.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  441.         IMPORT_CFM_FUNCTION DriverGestaltOff
  442.     ENDIF
  443.  
  444. ;
  445. ; extern Boolean DriverGestaltIsOn(DriverFlags flags)
  446. ;
  447.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  448.         IMPORT_CFM_FUNCTION DriverGestaltIsOn
  449.     ENDIF
  450.  
  451.  
  452.     IF ¬ OLDROUTINELOCATIONS THEN
  453. ;
  454. ; pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
  455. ;
  456.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  457.         ; parameters:
  458.         ;    paramBlock      => A0
  459.         ; returns:
  460.         ;    OSErr           <= D0
  461.         _PBOpenSync:    OPWORD    $A000
  462.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  463.         IMPORT_CFM_FUNCTION PBOpenSync
  464.     ENDIF
  465.  
  466. ;
  467. ; pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock)
  468. ;
  469.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  470.         ; parameters:
  471.         ;    paramBlock      => A0
  472.         ; returns:
  473.         ;    OSErr           <= D0
  474.         _PBOpenAsync:    OPWORD    $A400
  475.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  476.         IMPORT_CFM_FUNCTION PBOpenAsync
  477.     ENDIF
  478.  
  479. ;
  480. ; pascal OSErr PBOpenImmed(ParmBlkPtr paramBlock)
  481. ;
  482.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  483.         ; parameters:
  484.         ;    paramBlock      => A0
  485.         ; returns:
  486.         ;    OSErr           <= D0
  487.         _PBOpenImmed:    OPWORD    $A200
  488.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  489.         IMPORT_CFM_FUNCTION PBOpenImmed
  490.     ENDIF
  491.  
  492. ;
  493. ; pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
  494. ;
  495.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  496.         ; parameters:
  497.         ;    paramBlock      => A0
  498.         ; returns:
  499.         ;    OSErr           <= D0
  500.         _PBCloseSync:    OPWORD    $A001
  501.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  502.         IMPORT_CFM_FUNCTION PBCloseSync
  503.     ENDIF
  504.  
  505. ;
  506. ; pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock)
  507. ;
  508.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  509.         ; parameters:
  510.         ;    paramBlock      => A0
  511.         ; returns:
  512.         ;    OSErr           <= D0
  513.         _PBCloseAsync:    OPWORD    $A401
  514.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  515.         IMPORT_CFM_FUNCTION PBCloseAsync
  516.     ENDIF
  517.  
  518. ;
  519. ; pascal OSErr PBCloseImmed(ParmBlkPtr paramBlock)
  520. ;
  521.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  522.         ; parameters:
  523.         ;    paramBlock      => A0
  524.         ; returns:
  525.         ;    OSErr           <= D0
  526.         _PBCloseImmed:    OPWORD    $A201
  527.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  528.         IMPORT_CFM_FUNCTION PBCloseImmed
  529.     ENDIF
  530.  
  531. ;
  532. ; pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
  533. ;
  534.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  535.         ; parameters:
  536.         ;    paramBlock      => A0
  537.         ; returns:
  538.         ;    OSErr           <= D0
  539.         _PBReadSync:    OPWORD    $A002
  540.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  541.         IMPORT_CFM_FUNCTION PBReadSync
  542.     ENDIF
  543.  
  544. ;
  545. ; pascal OSErr PBReadAsync(ParmBlkPtr paramBlock)
  546. ;
  547.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  548.         ; parameters:
  549.         ;    paramBlock      => A0
  550.         ; returns:
  551.         ;    OSErr           <= D0
  552.         _PBReadAsync:    OPWORD    $A402
  553.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  554.         IMPORT_CFM_FUNCTION PBReadAsync
  555.     ENDIF
  556.  
  557. ;
  558. ; pascal OSErr PBReadImmed(ParmBlkPtr paramBlock)
  559. ;
  560.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  561.         ; parameters:
  562.         ;    paramBlock      => A0
  563.         ; returns:
  564.         ;    OSErr           <= D0
  565.         _PBReadImmed:    OPWORD    $A202
  566.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  567.         IMPORT_CFM_FUNCTION PBReadImmed
  568.     ENDIF
  569.  
  570. ;
  571. ; pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
  572. ;
  573.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  574.         ; parameters:
  575.         ;    paramBlock      => A0
  576.         ; returns:
  577.         ;    OSErr           <= D0
  578.         _PBWriteSync:    OPWORD    $A003
  579.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  580.         IMPORT_CFM_FUNCTION PBWriteSync
  581.     ENDIF
  582.  
  583. ;
  584. ; pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock)
  585. ;
  586.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  587.         ; parameters:
  588.         ;    paramBlock      => A0
  589.         ; returns:
  590.         ;    OSErr           <= D0
  591.         _PBWriteAsync:    OPWORD    $A403
  592.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  593.         IMPORT_CFM_FUNCTION PBWriteAsync
  594.     ENDIF
  595.  
  596. ;
  597. ; pascal OSErr PBWriteImmed(ParmBlkPtr paramBlock)
  598. ;
  599.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  600.         ; parameters:
  601.         ;    paramBlock      => A0
  602.         ; returns:
  603.         ;    OSErr           <= D0
  604.         _PBWriteImmed:    OPWORD    $A203
  605.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  606.         IMPORT_CFM_FUNCTION PBWriteImmed
  607.     ENDIF
  608.  
  609. ;
  610. ; pascal void AddDrive(short drvrRefNum, short drvNum, DrvQElPtr qEl)
  611. ;
  612.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  613.         _AddDrive:    OPWORD    $A04E
  614.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  615.         IMPORT_CFM_FUNCTION AddDrive
  616.     ENDIF
  617.  
  618. ;
  619. ; pascal QHdrPtr GetDrvQHdr(void )
  620. ;
  621.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  622.         Macro
  623.         _GetDrvQHdr           &dest=(sp)
  624.             move.l            #$00000308,&dest
  625.         EndM
  626.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  627.         IMPORT_CFM_FUNCTION GetDrvQHdr
  628.     ENDIF
  629.  
  630.     ENDIF
  631. ;
  632. ; pascal DCtlHandle GetDCtlEntry(short refNum)
  633. ;
  634.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  635.         IMPORT_CFM_FUNCTION GetDCtlEntry
  636.     ENDIF
  637.  
  638. ;    SetChooserAlert used to simply set a bit in a low-mem global
  639. ;    to tell the Chooser not to display its warning message when
  640. ;    the printer is changed. However, under MultiFinder and System 7,
  641. ;    this low-mem is swapped out when a layer change occurs, and the
  642. ;    Chooser never sees the change. It is obsolete, and completely
  643. ;    unsupported on the PowerPC. 68K apps can still call it if they
  644. ;    wish.
  645. ;    
  646. ;    pascal Boolean SetChooserAlert(Boolean f);
  647. ;
  648. ;
  649.  
  650. ;
  651. ; pascal OSErr DriverInstall(DRVRHeaderPtr drvrPtr, short refNum)
  652. ;
  653.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  654.         ; parameters:
  655.         ;    drvrPtr         => A0
  656.         ;    refNum          => D0
  657.         ; returns:
  658.         ;    OSErr           <= D0
  659.         _DriverInstall:    OPWORD    $A03D
  660.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  661.         IMPORT_CFM_FUNCTION DriverInstall
  662.     ENDIF
  663.  
  664. ;
  665. ; pascal OSErr DriverInstallReserveMem(DRVRHeaderPtr drvrPtr, short refNum)
  666. ;
  667.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  668.         ; parameters:
  669.         ;    drvrPtr         => A0
  670.         ;    refNum          => D0
  671.         ; returns:
  672.         ;    OSErr           <= D0
  673.         _DriverInstallReserveMem:    OPWORD    $A43D
  674.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  675.         IMPORT_CFM_FUNCTION DriverInstallReserveMem
  676.     ENDIF
  677.  
  678. ;  Note: DrvrInstall() is no longer supported, becuase it never really worked anyways.
  679. ;          There will soon be a DriverInstall() which does the right thing.
  680. ;
  681. ;        DrvrRemove has been renamed to DriverRemove.  But, InterfaceLib for PowerPC
  682. ;        still exports DrvrRemove, so a macro is used to map the new name to old.
  683. ;
  684. ;
  685.  
  686. ;
  687. ; pascal OSErr DrvrRemove(short refNum)
  688. ;
  689.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  690.         ; parameters:
  691.         ;    refNum          => D0
  692.         ; returns:
  693.         ;    OSErr           <= D0
  694.         _DrvrRemove:    OPWORD    $A03E
  695.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  696.         IMPORT_CFM_FUNCTION DrvrRemove
  697.     ENDIF
  698.  
  699.  
  700. ;
  701. ; pascal OSErr PBControlSync(ParmBlkPtr paramBlock)
  702. ;
  703.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  704.         ; parameters:
  705.         ;    paramBlock      => A0
  706.         ; returns:
  707.         ;    OSErr           <= D0
  708.         _PBControlSync:    OPWORD    $A004
  709.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  710.         IMPORT_CFM_FUNCTION PBControlSync
  711.     ENDIF
  712.  
  713. ;
  714. ; pascal OSErr PBControlAsync(ParmBlkPtr paramBlock)
  715. ;
  716.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  717.         ; parameters:
  718.         ;    paramBlock      => A0
  719.         ; returns:
  720.         ;    OSErr           <= D0
  721.         _PBControlAsync:    OPWORD    $A404
  722.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  723.         IMPORT_CFM_FUNCTION PBControlAsync
  724.     ENDIF
  725.  
  726. ;
  727. ; pascal OSErr PBControlImmed(ParmBlkPtr paramBlock)
  728. ;
  729.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  730.         ; parameters:
  731.         ;    paramBlock      => A0
  732.         ; returns:
  733.         ;    OSErr           <= D0
  734.         _PBControlImmed:    OPWORD    $A204
  735.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  736.         IMPORT_CFM_FUNCTION PBControlImmed
  737.     ENDIF
  738.  
  739. ;
  740. ; pascal OSErr PBStatusSync(ParmBlkPtr paramBlock)
  741. ;
  742.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  743.         ; parameters:
  744.         ;    paramBlock      => A0
  745.         ; returns:
  746.         ;    OSErr           <= D0
  747.         _PBStatusSync:    OPWORD    $A005
  748.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  749.         IMPORT_CFM_FUNCTION PBStatusSync
  750.     ENDIF
  751.  
  752. ;
  753. ; pascal OSErr PBStatusAsync(ParmBlkPtr paramBlock)
  754. ;
  755.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  756.         ; parameters:
  757.         ;    paramBlock      => A0
  758.         ; returns:
  759.         ;    OSErr           <= D0
  760.         _PBStatusAsync:    OPWORD    $A405
  761.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  762.         IMPORT_CFM_FUNCTION PBStatusAsync
  763.     ENDIF
  764.  
  765. ;
  766. ; pascal OSErr PBStatusImmed(ParmBlkPtr paramBlock)
  767. ;
  768.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  769.         ; parameters:
  770.         ;    paramBlock      => A0
  771.         ; returns:
  772.         ;    OSErr           <= D0
  773.         _PBStatusImmed:    OPWORD    $A205
  774.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  775.         IMPORT_CFM_FUNCTION PBStatusImmed
  776.     ENDIF
  777.  
  778. ;
  779. ; pascal OSErr PBKillIOSync(ParmBlkPtr paramBlock)
  780. ;
  781.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  782.         ; parameters:
  783.         ;    paramBlock      => A0
  784.         ; returns:
  785.         ;    OSErr           <= D0
  786.         _PBKillIOSync:    OPWORD    $A006
  787.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  788.         IMPORT_CFM_FUNCTION PBKillIOSync
  789.     ENDIF
  790.  
  791. ;
  792. ; pascal OSErr PBKillIOAsync(ParmBlkPtr paramBlock)
  793. ;
  794.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  795.         ; parameters:
  796.         ;    paramBlock      => A0
  797.         ; returns:
  798.         ;    OSErr           <= D0
  799.         _PBKillIOAsync:    OPWORD    $A406
  800.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  801.         IMPORT_CFM_FUNCTION PBKillIOAsync
  802.     ENDIF
  803.  
  804. ;
  805. ; pascal OSErr PBKillIOImmed(ParmBlkPtr paramBlock)
  806. ;
  807.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  808.         ; parameters:
  809.         ;    paramBlock      => A0
  810.         ; returns:
  811.         ;    OSErr           <= D0
  812.         _PBKillIOImmed:    OPWORD    $A206
  813.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  814.         IMPORT_CFM_FUNCTION PBKillIOImmed
  815.     ENDIF
  816.  
  817. ;
  818. ; pascal short OpenDeskAcc(ConstStr255Param deskAccName)
  819. ;
  820.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  821.         _OpenDeskAcc:    OPWORD    $A9B6
  822.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  823.         IMPORT_CFM_FUNCTION OpenDeskAcc
  824.     ENDIF
  825.  
  826. ;
  827. ; pascal void CloseDeskAcc(short refNum)
  828. ;
  829.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  830.         _CloseDeskAcc:    OPWORD    $A9B7
  831.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  832.         IMPORT_CFM_FUNCTION CloseDeskAcc
  833.     ENDIF
  834.  
  835. ;    The PBxxx() routines are obsolete.  
  836. ;    
  837. ;    Use the PBxxxSync(), PBxxxAsync(), or PBxxxImmed version instead.
  838. ;
  839.  
  840.  
  841.     IF ¬ OLDROUTINELOCATIONS THEN
  842.     ENDIF
  843.  
  844.  
  845.  
  846.  
  847.     ENDIF ; __DEVICES__ 
  848.  
  849.